package domain.user ;

/**
 * a privilege is a permission to do perform an operation. each constant corresponds to an use case.
 *
 * @author idan
 */
public enum Privilege
{
	/** add a directory to the directory tree. */
	ADD_DIRECTORY,
	/** add post to a thread. */
	ADD_POST,
	/** add a thread to a directory. */
	ADD_THREAD,
	/** delete a directory from the directory tree. */
	DELETE_DIRECTORY,
	/** delete post from a thread. */
	DELETE_POST,
	/** delete a thread from a directory. */
	DELETE_THREAD,
	/** deny a privilege from another user. */
	DENY_PERMISSION,
	/** edit a post. */
	EDIT_POST,
	/** edit any post, even if the user is not the write **/
	EDIT_ANY_POST,
	/** give another user a privilege. */
	GIVE_PERMISSION,
	/** move a directory to another node in the tree. */
	MOVE_DIRECTORY,
	/** move post to another thread. */
	MOVE_POST,
	/** move a thread to another directory. */
	MOVE_THREAD,
	/** reply to a post. */
	REPLY_POST,
	/** view the contents of a directory. */
	VIEW_DIRECTORY,
	/** view a post. */
	VIEW_POST,
	/** view all posts in a thread. */
	VIEW_THREAD,
	/** view statistics */
	VIEW_STATISTICS,
	/** edit your own profile */
	EDIT_PROFILE
}
